Ad hoc positioning of mobile devices using near ultrasound signals

ABSTRACT

An approach for providing a lower cost real time location system in less trafficked areas of a building. This approach uses on-board audio capabilities of a mobile device to receive a room response trace resulting from a self-generated acoustic signal. By comparing the room response trace to a modeled room response trace, the location of the mobile device is determined.

FIELD

The present disclosure relates generally to real-time locating systems, and more particularly to determining a location of a mobile device based at least in part on a comparison of a received room response trace with a modeled room response trace associated with a real-time locating system.

BACKGROUND

A common challenge in modern business is to locate important resources at any given time in a building or campus environment. Such resources include key personnel, critical pieces of equipment, vital records and the like. For example, the personnel, the critical pieces of equipment and the vital records are typically mobile, are often needed in a variety of locations during a typical working day, and are therefore constantly being relocated during the working day. Given that it is unproductive to divert other resources to locate these resources, it is desirable to develop an approach that can locate these important resources at any time in the environment of a building, campus environment and the like.

SUMMARY

Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments.

One example aspect of the present disclosure is directed to a computer-implemented method of determining a location of a mobile computing device associated with a real-time locating system. The method includes transmitting by a speaker in a mobile device a transmitted acoustic signal. The method further includes receiving by a microphone within the mobile device a received acoustic signal, the received acoustic signal resulting from an interaction by the transmitted acoustic signal with a local acoustic environment in which the mobile device is located. In addition, the method includes deconvolving the received acoustic signal with the transmitted acoustic signal to generate a room response trace. Furthermore, the method also includes comparing the room response trace to a modeled room response trace, the modeled room response trace being previously calculated and stored on one of the mobile device or a central server. Finally, the method includes determining a location of the mobile device based on the comparing the room response trace.

BRIEF DESCRIPTION OF THE DRAWINGS

Detailed discussion of embodiments directed to one of ordinary skill in the art is set forth in the specification, which makes reference to the following appended figures.

FIG. 1 depicts an overview of an example real-time locating system according to example embodiments of the present disclosure.

FIG. 2 depicts a flow diagram of an example method of determining a location of a mobile computing device associated with a real-time locating system according to example embodiments of the present disclosure.

FIG. 3 depicts an example system according to example embodiments of the present disclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments, one or more examples of which are illustrated in the drawings. Each example is provided by way of explanation of the embodiments, not limitation of the invention. In fact, it will be apparent to those skilled in the art that various modification and variations can be made to the embodiments without departing from the scope or spirit of the present disclosure. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus it is intended that aspects of the present disclosure cover such modifications and variations.

Various approaches may be employed to position mobile devices in an indoor environment using acoustic signals. Many of these approaches use an infrastructure that transmits acoustic signals, which are then received by the mobile device and are in turn used to estimate the position of the mobile device. In areas that are highly frequented, the deployment of such an infrastructure is a cost effective measure. However, in less trafficked areas of a building, a lower cost implementation would be to have the mobile phone position itself. A number of techniques that have attempted to address this need include: (1) fusion algorithms that combine signals from accelerometers, gyroscopes, magnetometers and pressure sensors as well as WiFi and cell towers to find a position using a known floor layout; and (2) the preceding approach including the use of video images of the environment acquired by the mobile device.

Both techniques have serious shortcomings in accuracy and usability. The first approach has shortcomings in accuracy (position errors of the order of several meters) and therefore cannot guarantee making a correct determination of the room location. In terms of the second approach, video images are available only when the phone is out in the open and not when it is carried in a pocket.

More specifically, the first approach suffers mostly from drifting issues that result in locating the mobile device in the wrong general location (wrong side of a room, wrong floor, etc.) since location is derived indirectly through an accumulation of signal changes. Video images may correct for this by providing an absolute reference point of location when a feature can be uniquely recognized in an image (the mobile device has access to reference images of the building). If such a reference set of images is not available, it suffers from the same accumulation of error issue as the first approach.

Instead of using the on-board camera system of the mobile device to provide absolute location references, a new approach is proposed. In an embodiment of the present disclosure, this approach uses the on board audio capabilities of a mobile device in the following way. On demand, the mobile device sends out acoustic pulses using its on-board speaker. The timing of these acoustic pulses is controlled and measured in terms of the on-board clock of the mobile device. The nature of the acoustic signals transmitted is such that they are preferably inaudible to humans and have well defined narrow auto-correlation characteristics. Exemplary embodiments of such acoustic signals are ultrasonic signals, and PSK and QAM-modulated signals are examples of such signals respectively.

Optionally, and to allow multiple mobile devices to co-exist in the acoustic environment, it is advantageous to use a combination of unique time slots and/or coding of the acoustic signal used by the mobile device that is locally unique. In this case, the on-board clock may be used to timestamp the transmission of the acoustic signal and to timestamp the receipt of the acoustic signal. These timestamps in the mobile device may be translated to a world clock with low error (3 ms or less) in order to facilitate the derivation of the measurement of time of flight between mobile devices.

The microphone signal of the mobile device may be configured to receive the generated acoustic signals that are transmitted. The processing capability of the mobile device performs a deconvolution of the received acoustic signals using the known generated waveform to obtain a room response trace. The room response trace reflects the local acoustic environment in which the mobile device is located. In this approach, the timing of the received acoustic signals are controlled and measured in terms of the on-board clock of the mobile device.

If multiple mobile devices are active in the acoustic environment, the mobile device may also listen for signals transmitted by these other mobile devices. Information concerning the timing, device orientation and the transmitted acoustic signal used by these other mobile devices may be communicated to the mobile device by some other means (e.g., RF wireless link such as peer-to-peer or a server based exchange). The time of flight between multiple mobile devices may be obtained by ensuring that both the transmitted signal and received signal on the interacting devices can be traced back to a common time base. Such a common time base can for example be established using a peer to peer mechanism involving a RF link or by ensuring that both devices have access to an accurate world clock. Such a world clock timebase may be derived by a mobile device using for example the GPS timing signal or mechanism like Network Time Protocol or similar. When the mobile devices have access to a building model that allows them to calculate the room response traces, the time of flight of all paths (direct and reflective) may be used to calculate the positions of the mobile devices. Thus, in an embodiment, a mobile device may determine its location (or distance from another mobile device) using a transmitted signal from the other mobile device including one or more of the following: strength of the transmitted signal, the orientation of the transmitting mobile device (relative to an absolute reference frame), spatial characteristics of the transmitting mobile device, and timing information associated with the transmitted signal (where the timing may be referred back to a common time base).

The orientation of the mobile device with respect to magnetic or true north may be estimated using the mobile device's on-board sensors at a minimum for the time period during which acoustic signals are being transmitted or received by the mobile device. The orientation estimates are timed using the on-board clock or the world clock with a low error in comparison to the timing of the events of the acoustic signals (<100 ms)

When multiple mobile devices are actively transmitting acoustic signals, the approach described above may be repeated for any pairing of devices. In this case, the room response traces becomes a function of the position of both devices in the acoustic environment.

The measured room response traces may be compared to modeled room response traces from which the position of the mobile device is solved using a positioning algorithm. The positioning algorithm may use a combination of analytic, numerical and machine learning algorithms. The positioning algorithm may be aided by means of sensor data fusion. The modeled room response traces may be based on a detailed 3D acoustic model of the likely acoustic environments that the mobile device might be located in. In some embodiments of the present disclosure, the spatial transmit and receive characteristics for respectively the speaker and microphone are known in the frequency range used by the acoustic signals. These spatial transmit and receive characteristics are used in combination with the mobile device orientation measurements to correct the modeled room response trace for the orientation of the mobile device, such that its shape as a function of time is dependent only on the position of the mobile device in the acoustic environment. In an embodiment, the search of the likely acoustic environments may be limited based on location history and data fusion position results.

When multiple mobile devices are actively transmitting acoustic signals, position results may also be shared between mobile devices in the same acoustic environment to assist other devices in finding a valid position estimate. Position results for mobile devices may optionally be sent to a central location for retrieval by other devices, whether these other devices are mobile or stationary units.

In a further embodiment, the above solution may also function without the use of a model of the acoustic environment in the scenario where the use case requires only the knowledge of the relative positions of multiple mobile devices rather than their absolute positions in an acoustic environment. In some embodiments of this scenario, the room response traces are analyzed to use the line-of-sight signal between mobile device pairs. Again, in certain embodiments, the position determination may be aided by means of sensor data fusion, as described above. In other embodiments, the timing between mobile device pairs may alternatively be synchronized in a pair-wise peer-to-peer fashion using RF communication devices between mobile device pairs (BLE, WiFi). The above approaches may be implemented using various architectures, as discussed further below.

Real-time location systems have been developed using various wireless protocols, with perhaps the best known system being the global positioning system (GPS). While such location systems provide horizontal location accuracies of the order of approximately 8 meters, such systems do not address all location scenario requirements. For example, many scenarios demand location accuracies of better than 0.3 meters. Other scenarios require vertical accuracies that distinguish between floors in a high rise building. Still other scenarios require contextual location information, such as room-based information in an office building. Systems, such as indoor positioning systems, have been developed to attempt to address the requirements. However, such conventional indoor positioning systems typically require large deployment efforts and/or infrastructure costs. For instance, such systems may require LIDAR systems that implement full three-dimensional laser mapping of a desired area. As another example, such indoor positioning systems may use ultra-wideband positioning techniques that require large amounts of infrastructure (e.g. transmitting devices, etc.).

In response to these demanding location requirements, embodiments of the present disclosure provide solutions to these requirements. Acoustic signals may be used to determine the location of mobile units, or tags, in three dimensions by transmitting signals from a plurality of transmitting devices (which may be fixed to the walls or ceilings of a building). The acoustic signals may include encoded identifiers of the respective transmitting devices. These acoustic signals can be received by mobile computing devices. If the locations of the static transmitting devices are known, the times of arrival of a set of acoustic signals at one of the mobile computing devices can be used to estimate the location of that mobile device in the environment, using standard geometric calculations.

For example, aspects of the present disclosure are directed to determining a location of a mobile device based on acoustic-contextual data (ACD) associated with a real-time locating system. For instance, a mobile computing device associated with the real-time locating system can determine a first location of the mobile computing device. The first location may be a coarse location determined by a wireless-based location system, such as GPS. In some implementations, the first location can be determined based on a unique identification associated with the real-time locating system. The mobile computing device may then receive acoustic-contextual data associated with the first location. For example, the acoustic-contextual data would be data that is determined to be relevant to the first location. The acoustic-contextual data may include data associated with one or more transmitting devices and/or data associated with one or more acoustic properties of an environment proximate the one or more transmitting devices. The mobile computing device may then receive one or more acoustic signals from at least one of the one or more transmitting devices, and can determine a second location of the mobile computing device based at least in part on the acoustic-contextual data and the one or more received acoustic signals. For example, the second location may be an improved (more precise) location of the mobile computing device compared to the first location. In another example, the second location may be a contextual-based location, such as a room number in an office building, where the mobile computing device is located.

More particularly, the mobile computing device may be, for instance, a mobile user computing device, such as a smartphone, tablet computer, wearable computing device, dedicated tag associated with a real-time locating system, and/or any other suitable mobile computing device capable of being used in mobile operation. The first location can be determined by the mobile computing device based at least in part on a global positioning service (GPS), one or more Wi-Fi signals, one or more Bluetooth signals, one or more cellular signals, one or more positioning sensors implemented within the mobile computing device (e.g. inertial measurement unit(s), gyroscope(s), accelerometer(s), magnetometer(s), etc.), one or more pressure sensors implemented within the mobile computing device, one or more cameras implemented within the mobile computing device, and/or other suitable manner. In some implementations, the first location can be determined based at least in part on an identification of a transmitting device, as encoded within a signal received from the transmitting device by the mobile computing device. For instance, the received signal can indicate a proximity to the transmitting device.

The acoustic-contextual data may be provided to the mobile computing device responsive to a determination of the presence of the mobile computing device at the first location. For instance, upon a determination of the first location, the first location can be correlated with a real-time locating system. More particularly, a real-time locating system located proximate the first location may be identified based at least in part on a known location of the real-time locating system and the determined first location. In this manner, when the first location of the mobile computing device is within a threshold distance from the known location of the real-time locating system, such real-time locating system can be identified using the known first location.

In some implementations, the location of the real-time locating system can be stored in a lookup table or other data arrangement that maps one or more real-time locating systems to respective locations at which the real-time locating systems are deployed. The location can be expressed in the lookup table as any suitable data indicative of one or more locations of the corresponding real-time locating system. For instance, the location(s) can be stored as coordinates (e.g. GPS coordinates), wireless network identifiers (e.g. WLAN service set identifier (SSID), Bluetooth Low Energy (BLE) identification, etc.), acoustic identifier associated with the real-time locating system (e.g. provided by one or more transmitting devices of the real-time locating system), or other suitable location indicators. In some implementations, the location of the real-time locating system can be stored in the lookup table as a geofence or other boundary encompassing an area over which at least a portion of the real-time locating system is deployed.

In this manner, the first location may be determined in accordance with the locations as expressed in the lookup table. For instance, in implementations wherein the location is stored as coordinates, the first location can be determined as coordinates in accordance with the lookup table. As another example, in implementations wherein the location is stored as one or more wireless network identifiers, the first location can be determined based at in part on a detection of wireless network identifiers by the mobile computing device.

The identification of a proximate real-time locating system may be performed by accessing the lookup table and performing a lookup for a table entry of the first location. For instance, in implementations wherein the location of the real-time locating system is stored as GPS coordinates or other data indicative of a physical location, the lookup table can be accessed to determine if the lookup table includes an entry representing a real-time locating system having a location within a threshold distance of the current location of the mobile computing device. As another example, in implementations wherein the location of the real-time locating system is stored as a wireless network identifier, the lookup table can be accessed to determine if the lookup table includes a real-time locating system having a location associated with a wireless network identifier associated with a wireless network proximate the mobile computing device. For instance, if the mobile computing device detects and/or is connected to a wireless network (WLAN, WPAN, etc.), the mobile computing device can access the lookup table to determine if the lookup table includes an entry representing a real-time locating system associated with the identifier of the network.

In some implementations, the identification of a proximate real-time locating system can be performed by the mobile computing device. In such implementations, the lookup table can be stored locally by the mobile computing device. In this manner, the mobile computing device can monitor the location of the mobile computing device, and can access the locally stored lookup table to determine if there is a real-time locating system proximate the mobile computing device.

In some implementations, the lookup table can be stored in a remote computing device, such as a server computing device. In such implementations, the mobile computing device can monitor the location of the mobile computing device, and can provide data indicative of the location to the server device. The server device can then access the lookup table to determine whether there is a real-time locating system proximate the mobile computing device.

As indicated, upon a determination that the mobile computing device is located proximate a real-time locating system, acoustic-contextual data associated with the real-time locating system may be provided to the mobile computing device. The acoustic-contextual data can be stored, for instance, at the server device. For instance, in implementations wherein the proximate real-time locating system is identified by the mobile computing device, the mobile computing device can provide a request for the relevant acoustic-contextual data to the server device. The server device may then provide the relevant acoustic-contextual data to the mobile computing device. In implementations wherein the proximate real-time locating system is identified by the server device, the server device can provide the relevant acoustic-contextual data to the mobile computing device in response to the identification of the proximate real-time locating system by the server device.

The acoustic-contextual data may include suitable data used to facilitate a determination of the second location of the mobile computing device. For instance, the acoustic-contextual data can include data associated with one or more transmitting devices of the real-time locating system and/or data associated with an environment proximate the one or more transmitting devices. The data associated with the one or more transmitting devices can include data descriptive of one or more characteristics of the signals (e.g. acoustic signals) to be transmitted by the transmitting device. Such data can include data indicative of at least one of a sound pressure level, signal coding type, signal identification, signal direction normal, signal spatial distribution, signal period, and/or other suitable data associated with the one or more signals to be transmitted by the transmitting device.

The data associated with the environment proximate the one or more transmitting devices may include data associated with an environment over which the real-time locating system is deployed, such as one or more rooms, spaces, structures, buildings, regions, etc. in which the one or more transmitting devices are located. More particularly, such environmental data may include identifying data associated with the environment. Such identifying data can include unique identifier(s) associated with the location(s) of the one or more transmitting devices, or other suitable identifying data. For instance, the identifier(s) can include identifier(s) indicative of the respective room(s), building(s), campus(es), area(s), etc. in which the one or more transmitting devices are located. The environmental data may further include data specifying an organization, configuration, or hierarchy of the environment in which the one or more transmitting devices are located. For instance, such data can include data specifying a relationship between a particular room and a particular building (e.g. data specifying that the room is located within the building, specifying a location of the room within the building, etc.). As another example, such data can include data indicative of an organization of one or more buildings located on a campus. In some implementations, the environmental data can include spatial relationship data specifying a relative physical location between two or more environmental entities (e.g. room, area, campus, wall, object, item, pathway, etc.).

The environmental data may further include dimensional data associated with the environment. For instance, such dimensional data can include the dimensions of one or more reflective surfaces (e.g. walls, ceilings, floors, objects, furniture, etc.) within a room in which a transmitting device is located. The dimensional data may further include data indicative of the normal direction of such reflective surfaces. The environmental data can further include data indicative of the acoustic attenuation of such reflective surfaces at frequencies used in the signal coding scheme. The environmental data may further include data indicative of the relative location(s) of the one or more transmitting devices within a particular room, building, area, etc. More particularly, such environmental data can include an identifier of a surface (e.g. wall, floor, ceiling, etc. of a room) on which a transmitting device is located and/or data indicative of a location and/or orientation of the transmitting device with respect to the surface. The environmental data may further include atmospheric data indicative of the speed of sound, temperature, pressure, humidity, acoustic attenuation, etc. within the environment. In certain embodiments, since the environmental data changes over time, the environmental data may be updated to reflect current environmental conditions.

It will be appreciated that the acoustic-contextual data provided to the mobile computing device may be expressed in any suitable format, structure, organization, configuration, etc. to facilitate a communication of the acoustic-contextual data to the mobile computing device for purpose of determining the second location of the mobile computing device. In addition, it will be further appreciated that the acoustic-contextual data provided to the mobile computing device can include any combination of the data described above for purpose of determining the second location. It will be further still appreciated that the acoustic-contextual data provided to the mobile computing device may include other suitable data associated with the real-time locating system (e.g. one or more transmitting devices) and/or suitable data associated with the environment over which the real-time locating system is deployed without deviating from the scope of the present disclosure.

The acoustic-contextual data that is provided to the mobile computing device may be selected based at least in part on the first location. In some implementations, the acoustic-contextual data for the entire real-time locating system (e.g. for each transmitting device and/or the entire environment over which the real-time locating system is deployed) can be selected. In some implementations, acoustic-contextual data for a subset of the real-time locating system (e.g. a subset of transmitting devices and/or a subset of the environment) can be selected. The subset can be determined based at least in part on the first location. In this manner, the subset can include acoustic-contextual data for a subset of transmitting devices and/or a subset of the environment proximate the first location. In some implementations, the acoustic-contextual data can be selected based at least in part on the known locations of one or more transmitting devices proximate the first location.

Upon receipt of the acoustic-contextual data by the mobile computing device, the mobile computing device may receive acoustic signals (e.g. acoustic signals) from one or more transmitting devices located proximate the mobile computing device. It will be appreciated that the mobile computing device can receive the acoustic signals prior to receipt of the acoustic-contextual data. For instance, in some implementations the mobile computing device can be configured to determine the appropriate acoustic-contextual data based at least in part on an acoustic identifier encoded within the received acoustic signals. More particularly, the transmitting devices of the real-time locating system may be configured to periodically transmit acoustic signals (or other suitable signals, such as radio frequency signals) that can be received by suitable mobile computing devices located within the broadcast range of the transmitting devices. In some implementations, the acoustic signals can be ultrasonic signals having a frequency greater than about 20 kHz. As used herein, the term “about,” when used in reference to a numerical value, is intended to refer to within 30% of that value.

In this manner, a mobile computing device located within the broadcast range of one or more transmitting devices can receive acoustic signals from the one or more transmitting devices. The acoustic signals can be signals propagating directly from the one or more transmitting devices to the mobile computing device (referred to herein as “direct signals”), and/or signals that have been reflected by one or more reflective surfaces (referred to herein as “reflected signals”). The reflective surfaces can act as acoustic mirrors capable of reflecting acoustic signals (with some attenuation and a possible phase shift), and can include walls, ceilings, floors, furniture, objects, etc. located within the environment. The second location of the mobile computing device may be determined based at least in part on the acoustic-contextual data and the acoustic signals received from the one or more transmitting devices. The second location can be a more precise location than the first location. For instance, the second location can be a three-dimensional (3D) location specifying an x-coordinate, a y-coordinate, and a z-coordinate with respect to a 3D space. In some implementations, the location can be a two-dimensional location. In still further implementations, contextual location information may be provided, e.g., room number, floor number in an office building.

The mobile computing device may determine the second location based at least in part on the acoustic-contextual data and the received acoustic signals (e.g. direct signals and/or reflected signals). The mobile computing device can be configured to determine the second location using various suitable location determination techniques. For instance, the mobile computing device can be configured to determine the second location using a suitable triangulation, trilateration, multilateration, and/or other suitable technique. In this manner, the mobile computing device can determine various signal measurements associated with the received acoustic signals to facilitate determination of the location of the mobile computing device. Such signal measurements may include a time of arrival, time of flight, angle of arrival, signal strength, and/or time difference of arrival of the received acoustic signals. It will be appreciated that other additional and/or alternative suitable measurements can be used to facilitate determination of the location mobile computing device. For instance, such measurements can include a motion induced frequency shift (e.g. Doppler shift), signal-to-noise ratio, signal phase, and/or other suitable measurements. In addition to the acoustic characteristics of the one or more transmitting devices and environment (e.g. acoustic-contextual data), the mobile computing device may use the acoustic receive characteristics of its one or more acoustic receiver signal chains in the location determination. Such information may include microphone sensitivity, directivity, frequency dependence, and/or other suitable information. This information may be stored on the mobile computing device or retrieved from the server from a database based at least in part on the model type number of the mobile computing device and/or other suitable identifying information associated with the mobile computing device.

More particularly, the mobile computing device may determine the second location based on a knowledge of properties of the acoustic signals transmitted by the transmitting device(s) and the dimensional specifications of the environment in which the transmitting device(s) are located, as provided by the acoustic-contextual data. Such knowledge, in conjunction with the signal measurements of the received acoustic signals, can be used to determine the second location using the various suitable location determination techniques. The acoustic signals can encode identifying data (and/or other data) associated with the respective transmitting devices that transmitted the acoustic signals. In some implementations, upon receiving the acoustic-contextual data and the acoustic signal(s), the mobile computing device can decode the acoustic signal(s) to determine the identification of the transmitting device(s) that transmitted the acoustic signal(s).

In some implementations, the mobile computing device can determine signal paths of the received acoustic signals based at least in part on the acoustic-contextual data, the time of arrival of the received acoustic signal(s), and/or a knowledge of the identity of the transmitting device(s) that transmitted the signal(s). Such signal paths can indicate an estimate of a reflection point of the acoustic signal at which the acoustic signal is reflected off of a reflection surface towards the mobile computing device. The mobile computing device can perform multilateration techniques based at least in part on the signal paths and/or reflection points, and the signal measurements (e.g. time of arrival, etc.) associated with the acoustic signals.

As indicated above, the systems and methods of the present disclosure can provide a more accurate and efficient locating system relative to conventional real-time locating systems (e.g. indoor positioning systems). More particularly, the information gained by the provision of the acoustic-contextual data can be used to increase the accuracy of the determined second location of the mobile computing device. In this manner, the location of the mobile computing device can be determined on a room-by-room basis and/or on a sub-room basis, which can allow for a more accurate and robust location tracking. Such a real-time locating system requires less processing power, and a less complex infrastructure that is smaller and easily scalable. Such real-time locating system further provides near real-time latency by utilizing numerous location determination techniques (e.g. using acoustic signals in conjunction with the acoustic-contextual data). Such a real-time locating system further provides an increased flexibility by allowing the use of various types of mobile computing devices (e.g. smartphones, etc. already owned by a user and/or dedicated positioning tags associated with the real-time locating system).

The systems and methods of the present disclosure may be used in a number of applications, such as location tracking, work flow, mobile equipment tracking, safety and compliance, mobile equipment management, staff location determination, or other suitable application. As a particular example, the systems and methods of the present disclosure can facilitate a provision of wayfinding information, such as routing instructions, step-by-step directions, etc. from an origin to a destination. In some implementations, such wayfinding application can be used in conjunction with a mapping or routing application associated a mobile unit of a user to facilitate the wayfinding with respect to a map of a building, area, geographic region, etc. One example field of use is within the health care industry. For instance, a real-time location system of the present disclosure can be implemented within a hospital to provide patient tracking, patient flow, etc.

With reference now to the figures, example aspects of the present disclosure will be discussed in greater detail. For instance, FIG. 1 depicts an example real-time locating system 100 according to example aspects of the present disclosure. The system 100 includes a mobile computing device 102, a transmitting device 104, and a remote computing device 106. In various implementations, the system 100 can include one or more transmitting devices deployed throughout an environment (e.g. campus, building, room, area, etc.) in such a manner as to facilitate a location determination of one or more mobile computing devices located within the environment. The transmitting devices can be deployed in various suitable arrangements or configurations throughout the environment based on the needs or desires of the user.

The mobile computing device 102 can be configured to receive acoustic signals from the transmitting device 104 when located within a broadcast range of the transmitting device 104. In this manner, the transmitting device 104 may be configured to, at various intervals, (e.g. periodically), transmit acoustic (e.g. ultrasonic) signals that can be received by one or more mobile computing devices (e.g. mobile computing device 102), and used for determining the location of these mobile computing devices.

The mobile computing device 102 includes a first location determiner 108, an ACD coordinator 110, and a second location determiner 112. The first location determiner 108 can be configured to determine a first location of the mobile computing device. The first location determiner 108 may determine the first location based at least in part on GPS, one or more Wi-Fi signals, one or more Bluetooth signals, one or more cellular signals, one or more positioning sensors implemented within the mobile computing device (e.g. inertial measurement unit(s), gyroscope(s), gyroscope(s), accelerometer(s), magnetometer(s), etc.), one or more pressure sensors implemented within the mobile computing device, one or more cameras implemented within the mobile computing device 102, and/or other suitable location determination technique. In this manner, the mobile computing device 102 may include a positioning system configured to leverage various suitable positioning signals (e.g. GPS signals, Wi-Fi signals, Bluetooth signals, cellular signals, sensor signals, etc.) to determine a suitable first location of the mobile computing device 102.

The ACD coordinator 110 may be configured to facilitate the reception of relevant acoustic-contextual data by the mobile computing device 102 based at least in part on the first location. For instance, in some implementations, the ACD coordinator 110 can provide a request to the remote computing device 106 (e.g. via a network 116) for acoustic-contextual data associated with the first location. As indicated above, the acoustic-contextual data may include data associated with one or more transmitting devices and/or the environment proximate the first location. In this manner, the ACD coordinator 110 can, for instance, access a lookup table stored by the mobile computing device 102 to identify a real-time locating system (e.g. real-time locating system 100) proximate the first location. The lookup table may map a plurality of real-time locating systems to a plurality of respective locations. In some implementations, the lookup table can map acoustic-contextual data associated with the respective real-time locating systems to their respective locations. The ACD coordinator 110 can access the lookup table to determine if the first location, as determined by the first location determiner 108, corresponds to, or is located within a threshold distance of a location stored in the lookup table that is mapped to a real-time locating system.

The locations specified in the lookup table can be expressed as any suitable location, as required by the ACD coordinator 110 and/or the lookup table. For instance, the locations may be expressed as GPS coordinates (e.g. latitude, longitude), network identifiers (e.g. Wi-Fi SSID, Bluetooth ID, BLE beacon ID, etc.), and/or other suitable expression. In this manner, the first location determiner 108 may determine the first location in order to identify the locations as expressed in the lookup table. For instance, in implementations wherein the lookup table specifies locations as GPS coordinates, the first location determiner 108 can determine the first location as GPS coordinates using a GPS positioning system associated with the mobile computing device 102. As another example, in implementations wherein the lookup table specifies locations as network identifiers, the first location determiner 108 can determine the location based on a proximity to one or more detected networks (e.g. based on a signal strength of the detected network signals).

In some implementations, the lookup table can be stored at the remote computing device 106. The remote computing device 106 can include one or more computing devices, and can, for instance, be a server, such as a web server. In such implementations, the ACD coordinator 110 can provide the first location to the remote computing device 106, and the remote computing device 106 can access the lookup table to determine if the first location corresponds to a location specified in the lookup table. The remote computing device 106 can then provide the relevant acoustic-contextual data to the mobile computing device 102 based on that location.

In some implementations, the acoustic-contextual data provided to the mobile computing device 102 can be acoustic-contextual data associated with the entire real-time locating system corresponding to the first location. In other implementations, the acoustic-contextual data provided to the mobile computing device 102 can be acoustic-contextual data associated with a subset of the real-time locating system. For instance, such subset of the real-time locating system can correspond to a particular room, area, space, building, campus, etc. over which the real-time locating system is deployed. In this manner, the acoustic-contextual data associated with the subset can be acoustic-contextual data specific to the particular room, area, space, building, campus, etc. The subset can be determined based on a proximity to the first location. For instance, if is determined that the first location is a location within (or proximate) a particular room or area, acoustic-contextual data for the room or area can be provided to the mobile computing device 102. In some implementations, the acoustic-contextual data can be associated with one or more transmitting devices. For instance, in such implementations, each transmitting device associated with the real-time locating system can have an associated set of acoustic-contextual data tailored to that transmitting device and/or the environment in which the transmitting device is located. In this manner, the lookup table can map various locations to various transmitting devices, and the selected acoustic-contextual data can be selected based at least in part on an association with such various transmitting devices.

The acoustic-contextual data may include data descriptive of characteristics of the acoustic signals, such as data indicative of at least one of a sound pressure level, signal coding type, signal identification, signal direction normal, signal spatial distribution, signal period, carrier frequency, and/or other suitable data associated with the one or more signals to be transmitted by the transmitting device. The acoustic-contextual data may further include data associated with an environment in which the real-time locating system is located. Such environmental data can include a layout or organizational hierarchy of the environment, identifying data of the location within the environment (e.g. room, area, space, region, building, etc.) in which the transmitting device 104 is located, dimensional specifications of one or more reflective surfaces (e.g. walls, ceilings, floors, objects, etc.) within the environment (e.g. within a room, area, region, etc. in which the transmitting device 104 is located), data indicative of the relative location of the transmitting device 104 within the environment, such as an identifier of the surface on which the transmitting device 104 is located and/or a location and/or orientation of the transmitting device 104 with respect to the surface. The environmental data may further include atmospheric data indicative of the speed of sound, temperature, pressure, humidity, etc. within the environment. In certain embodiments, since the environmental data changes over time, the environmental data may be updated to reflect current environmental conditions.

As indicated, the mobile computing device 102 can further receive acoustic signals from the transmitting device 104. The second location determiner 112 may then determine a second location of the mobile computing device 102 based at least in part on the received acoustic signals and the acoustic-contextual data. More particularly, the second location determiner 112 may use knowledge of the properties of the acoustic signals and of the environment in which the mobile computing device 102 is located, as specified in the acoustic-contextual data, to aid in the determination of the second location of the mobile computing device 102. The second location may be a 3D location specifying coordinates along an x-axis, a y-axis, and a z-axis.

The second location determiner 112 may be configured to determine the location of the mobile computing device 102 using various suitable location determination techniques. More particularly, the second location determiner 112 may be configured to determine the second location using triangulation, trilateration, multilateration, and/or other suitable techniques. In this manner, the second location determiner 112 may determine various signal measurements associated with the received acoustic signals to facilitate determination of the location of the mobile computing device. Such signal measurements may include a time of arrival, time of flight, angle of arrival, signal strength, and/or time difference of arrival of the received acoustic signals. The second location determiner 112 may further use the received acoustic-contextual data to determine the second location of the mobile computing device 102. As indicated, the acoustic-contextual data may include data indicative of a plurality of signal characteristics or properties of the acoustic signals transmitted by the transmitting device 104, as well as a plurality of characteristics or properties of the environment in which the transmitting device 104 is located. The second location determiner 112 may use the knowledge of the signal characteristics and the knowledge of the environmental characteristics to aid in the location determination. For instance, in some implementations, the second location determiner 112 can determine one or more reflection points on one or more reflective surfaces of the environment based at least in part on the acoustic-contextual data and the received acoustic signals. As indicated, the reflection points can be locations on the reflective surfaces wherein the acoustic signals were reflected towards the mobile computing device. The second location determiner 112 may treat one or more of the reflection points as “virtual transmitters” for use in, for instance, a multilateration technique. In this manner, such multilateration technique may be performed based on a knowledge of the timing of the receipt of the acoustic signals in addition to a knowledge of the signal paths of the acoustic signals within the environment.

In some implementations, the second location determiner 112 can determine the second location based at least in part on one or more position sensors associated with the mobile computing device 102. Such position sensors can include one or more gyroscopes, accelerometers, magnetometers, inertial measurement units, etc. In such implementations, the second location can include an orientation and/or direction of the mobile computing device 102. In this manner, the second location may be determined using suitable sensor fusion techniques. In some implementations, the second location determiner 112 can determine the second location based at least in part on known characteristics or other information associated with one or more acoustic receivers associated with the mobile computing device 102. For instance, these characteristics and/or other information can include microphone sensitivity, directivity, frequency dependence, etc.

The real-time locating system 100 depicted in FIG. 1 is intended for illustrative purposes only. It will be appreciated that various other suitable real-time locating system configurations can be used without deviating from the scope of the present disclosure. For instance, although the system 100 depicted in FIG. 1 depicts only one mobile computing device 102 and one transmitting device 104, suitable real-time locating systems in accordance with the present disclosure can include multiple transmitting devices and mobile computing devices. As another example, suitable real-time locating systems in accordance with the present disclosure can include various other suitable structures, components and/or computing devices to facilitate the determination of a location of one or more mobile computing devices. As yet another example, in some implementations, the acoustic-contextual data 114 can be stored at the mobile computing device. In such implementations, the mobile computing device may be configured to determine the second location without the need for communication with the remote computing device 106.

FIG. 2 depicts a flow diagram of an example method (200) of determining a location of a mobile computing device according to example aspects of the present disclosure. The method (200) can be implemented by one or more computing devices, such as one or more of the computing devices described with respect to FIG. 3 . In addition, FIG. 2 depicts steps performed in a particular order for purposes of illustration and discussion. Those of ordinary skill in the art, using the disclosures provided herein, will understand that the steps of any of the methods described herein can be adapted, rearranged, expanded, omitted, or modified in various ways without deviating from the scope of the present disclosure.

At (202), the method (200) can include transmitting by a speaker in a mobile device a transmitted acoustic signal. The mobile device can be a user device, such as a smartphone, tablet computing device, laptop computing device, wearable computing device, dedicated positioning tag (e.g. active or passive) associated with a real-time locating system, or other suitable mobile computing device capable of being used in mobile operation.

At (204), the method (200) can receiving by a microphone within the mobile device a received acoustic signal, the received acoustic signal resulting from an interaction by the transmitted acoustic signal with a local acoustic environment in which the mobile device is located.

At (206), the method (200) can include deconvolving the received acoustic signal with the transmitted acoustic signal to generate a room response trace.

At (208), the method (200) can include comparing the room response trace to a modeled room response trace, the modeled room response trace being previously calculated and stored on one of the mobile device or a central server.

At (210), the method (200) can include determining a location of the mobile device based on the comparing the room response trace.

FIG. 3 depicts an example system 400 that can be used to implement the methods and systems of the present disclosure. In some implementations, the system 400 can be at least a portion of a real-time locating system configured to determine the locations of various suitable mobile computing devices. The system 400 may be implemented using a client-server architecture that includes a mobile computing device 410 that communicates with one or more remote computing devices, such as server 430. The system 400 can be implemented using other suitable architectures.

As shown, the system 400 can include a mobile computing device 410. The mobile computing device 410 can be any suitable type of mobile computing device, such as a smartphone, tablet, cellular telephone, wearable computing device, or any other suitable mobile computing device capable of being used in mobile operation. In some implementations, the mobile computing device can be a dedicated tag (e.g. passive or active) or other device for use in the real-time locating system. The mobile computing device 410 can include one or more processor(s) 412 and one or more memory devices 414.

The one or more processor(s) 412 can include any suitable processing device, such as a microprocessor, microcontroller, integrated circuit, logic device, one or more central processing units (CPUs), graphics processing units (GPUs) dedicated to efficiently rendering images or performing other specialized calculations, and/or other processing devices, such as a system on a chip (SoC) or a SoC with an integrated RF transceiver. The one or more memory devices 414 can include one or more computer-readable media, including, but not limited to, non-transitory computer-readable media, RAM, ROM, hard drives, flash memory, or other memory devices.

The one or more memory devices 414 can store information accessible by the one or more processors 412, including instructions 416 that can be executed by the one or more processors 412. For instance, the memory devices 414 can store the instructions 416 for implementing one or more modules configured to implement a first location determiner 108, an ACD coordinator 110, and/or a second location determiner 112, and/or other suitable instructions.

Each of the first location determiner 108, ACD coordinator 110, and second location determiner 112 may include computer logic utilized to provide desired functionality. Thus, each of the first location determiner 108, ACD coordinator 110, and second location determiner 112 can be implemented in hardware, application specific circuits, firmware and/or software controlling a general purpose processor. In one embodiment, each of the first location determiner 108, ACD coordinator 110, and second location determiner 112 are program code files stored on the storage device, loaded into memory and executed by a processor or can be provided from computer program products, for example computer executable instructions, that are stored in a tangible computer-readable storage medium such as RAM, hard disk or optical or magnetic media. The first location determiner 108, ACD coordinator 110, and second location determiner 112 can each correspond to one or more different programs, files, circuits, or sets of instructions. Likewise, two or more of the first location determiner 108, ACD coordinator 110, and second location determiner 112 can be combined into a single program, file, circuit, or set of instructions.

The instructions 416 may further include instructions for implementing a browser, for running a specialized application, or for performing other functions on the mobile computing device 410. For instance, the specialized application can be used to exchange data with server 430 over the network 440. The instructions 416 can include client-device-readable code for providing and implementing aspects of the present disclosure. For example, the instructions 416 can include instructions for implementing an application associated with the real-time locating system, or a third party application implementing wayfinding, asset tracking, or other services on the mobile computing device 410.

The one or more memory devices 414 can also include data 418 that can be retrieved, manipulated, created, or stored by the one or more processors 412. The data 418 may include, for instance, acoustic-contextual data, sensor data, and/or other data.

The mobile computing device 410 may include various input/output devices for providing and receiving information from a user, such as a touch screen, touch pad, data entry keys, speakers, and/or a microphone suitable for voice recognition. For instance, the mobile computing device 410 can have a display 420 for presenting a user interface to a user.

The mobile computing device 410 can further include a positioning system 424. The positioning system 424 can be any device or circuitry for determining the position of remote computing device. For example, the positioning device can determine actual or relative position by using a satellite navigation positioning system (e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers, Bluetooth hotspots, BLE beacons, Wi-Fi access points or Wi-Fi hotspots, Wi-Fi time-of-flight, and/or other suitable techniques for determining position.

The mobile computing device 410 may also include a network interface used to communicate with one or more remote computing devices (e.g. server 430) over a network 440. The network interface can include any suitable components for interfacing with one more networks, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.

The mobile computing device 410 may further include a communication system used to communicate with one or more transmitting devices, such as transmitting device 450. The communication system can include, for instance, one or more transducers (e.g. microphone devices) configured to receive acoustic (e.g. ultrasonic) signals from the transmitting device 450.

In some implementations, the mobile computing device 410 can be in communication with a remote computing device, such as a server 430 over network 440. Server 430 can include one or more computing devices. The server 430 can include one or more computing devices, and can be implemented, for instance, as a parallel or distributed computing system. In particular, multiple computing devices can act together as a single server 430.

Similar to the mobile computing device 410, the server 430 can include one or more processor(s) 432 and a memory 434. The one or more processor(s) 432 can include one or more central processing units (CPUs), and/or other processing devices. The memory 434 can include one or more computer-readable media and can store information accessible by the one or more processors 432, including instructions 436 that can be executed by the one or more processors 432, and data 438. For instance, although the second location determiner 112 is depicted in FIG. 3 as being included in the mobile computing device 102, in other implementations, the second location determiner 112 can be included in the server 430.

The data 438 may be stored in one or more databases. The one or more databases can be connected to the server 430 by a high bandwidth LAN or WAN, or can also be connected to server 430 through network 440. The one or more databases may be split up so that they are located in multiple locales.

Server 430 may also include a network interface used to communicate with computing device 410 over network 440. The network interface can include any suitable components for interfacing with one more networks, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.

Network 440 can be any type of communications network, such as a local area network (e.g. intranet), wide area network (e.g. Internet), cellular network, or some combination thereof. Network 440 may also include a direct connection between the mobile computing device 410 and server 430. Network 440 can include any number of wired or wireless links and can be carried out using any suitable communication protocol.

The system 400 can further include one or more transmitting devices, such as transmitting device 450. The transmitting device 450 can transmit acoustic signals (e.g. ultrasonic signals) such as described with regard to transmitting device 104 in FIG. 1 . In some implementations, the transmitting device 450 can transmit other suitable signals, such as radio frequency signals. The transmitting device 450 can be implemented using any suitable computing device(s). Although only one transmitting device is depicted in FIG. 3 , it will be appreciated by those skilled in the art that any suitable number of transmitting devices can be included in the system 400.

The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken and information sent to and from such systems. One of ordinary skill in the art will recognize that the inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, server processes discussed herein may be implemented using a single server or multiple servers working in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.

While the present subject matter has been described in detail with respect to specific example embodiments thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing may readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the scope of the present disclosure is by way of example rather than by way of limitation, and the subject disclosure does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. 

What is claimed is:
 1. A method comprising: modulating an acoustic signal to form a transmitted acoustic signal, the transmitted acoustic signal having a narrow auto-correlation function; transmitting, by a speaker in a mobile device, the transmitted acoustic signal; receiving, by a microphone within the mobile device, a received acoustic signal, the received acoustic signal resulting from an interaction by the transmitted acoustic signal with a local acoustic environment in which the mobile device is located; deconvolving the received acoustic signal with the transmitted acoustic signal to generate a room response trace; comparing the room response trace to a subset of a plurality of modeled room response traces, each of the subset of the plurality of modeled room response traces being previously calculated and stored on one of the mobile device or a central server, wherein the subset of the plurality of modeled room response traces are identified as being likely acoustic environments based on a location history of the mobile device; and determining a location of the mobile device based on the comparing the room response trace.
 2. The method of claim 1, further comprising: correcting the room response trace prior to the comparing, the correcting including using spatial transmit characteristics for the speaker and spatial receive characteristics for the microphone.
 3. The method of claim 1, further comprising: correcting the room response trace prior to the comparing, the correcting including estimating an orientation of the mobile device by using an on-board sensor of the mobile device to determine the orientation with respect to magnetic north or true north.
 4. The method of claim 1, wherein modulating the acoustic signal to form the transmitted acoustic signal includes modulating the acoustic signal using one of phase-shift keying modulation or QAM modulation.
 5. The method of claim 1, wherein transmitting the transmitted acoustic signal includes transmitting the transmitted acoustic signal in a specific time slot associated with the mobile device.
 6. The method of claim 1, wherein the comparing the room response trace to the subset of the plurality of modeled room response traces includes using a positioning algorithm that is a combination of analytic, numerical and machine learning algorithms.
 7. The method of claim 1, wherein the comparing the room response trace to the subset of the plurality of modeled room response traces includes using a positioning algorithm that is aided by sensor data fusion, the sensor data fusion including combined signals from one or more of accelerometers, gyroscopes, magnetometers and pressure sensors.
 8. The method of claim 1, wherein the comparing the room response trace to the subset of the plurality of modeled room response includes limiting a search of potential acoustic environments based on a location history and data fusion position results.
 9. The method of claim 3, wherein estimating the orientation of the mobile device further includes using the on-board sensor of the mobile device to determine the orientation for a time period during at least one of the transmitting by the speaker or the receiving by the microphone.
 10. A mobile computing device comprising: a processing device configured to modulate an acoustic signal to form a transmitted acoustic signal, the transmitted acoustic signal having a narrow autocorrelation function; a speaker configured to transmit the transmitted acoustic signal; a microphone configured to receive a received acoustic signal, wherein the received acoustic signal results from an interaction by the transmitted acoustic signal with a local acoustic environment in which the mobile computing device is located; and the processing device further configured to: deconvolve the received acoustic signal with the transmitted acoustic signal to generate a room response trace; compare the room response trace to a subset of a plurality of modeled room response traces, each of the subset of the plurality of modeled room response traces being previously calculated and stored on one of the mobile computing device or a central server, wherein the subset of the plurality of modeled room response traces are identified as being likely acoustic environments based on a location history of the mobile device; and determine a location of the mobile computing device based on the comparison of the room response trace.
 11. The mobile computing device of claim 10, wherein the processing device is further configured to: perform a correction of the room response trace prior to the comparison, wherein the correction includes using spatial transmit characteristics for the speaker and spatial receive characteristics for the microphone.
 12. The mobile computing device of claim 10, wherein the processing device is further configured to: perform a correction of the room response trace prior to the comparison, wherein the correction includes an estimate of an orientation of the mobile computing device by using an on-board sensor of the mobile device to determine the orientation with respect to magnetic north or true north.
 13. The mobile computing device of claim 10, wherein the transmitted acoustic signal is a modulated acoustic signal using one of phase-shift keying modulation or QAM modulation.
 14. The mobile computing device of claim 10, wherein the transmitted acoustic signal is transmitted in a specific time slot associated with the mobile computing device.
 15. The mobile computing device of claim 10, wherein the processing device is further configured to compare the room response trace to the subset of the plurality of modeled room response traces by using a positioning algorithm that is a combination of analytic, numerical and machine learning algorithms.
 16. The mobile computing device of claim 10, wherein the processing device is further configured to compare the room response trace to the subset of the plurality of modeled room response traces by using a positioning algorithm that is aided by sensor data fusion, the sensor data fusion including combined signals from one or more of accelerometers, gyroscopes, magnetometers and pressure sensors.
 17. A method comprising: receiving, by a microphone within a first mobile device, a received acoustic signal, the received acoustic signal resulting from an interaction by a transmitted acoustic signal within a local acoustic environment in which the first mobile device is located, wherein the transmitted acoustic signal is transmitted by a second mobile device, the transmitted acoustic signal being a modulated acoustic signal having a narrow autocorrelation function; receiving, by the first mobile device, supplemental information including a strength of the transmitted acoustic signal, an orientation of the second mobile device, one or more spatial characteristics of the second mobile device, timing information associated with the transmitted acoustic signal, and a location history of the first mobile device; and determining a location of the first mobile device based on the received acoustic signal and the supplemental information.
 18. The method of claim 17, wherein the timing information provides timing data with respect to a common time frame.
 19. A mobile computing device comprising: a microphone configured to receive a received acoustic signal, the received acoustic signal resulting from an interaction by a transmitted acoustic signal within a local acoustic environment in which the mobile computing device is located, wherein the transmitted acoustic signal is transmitted by another mobile computing device, the transmitted acoustic signal being a modulated acoustic signal having a narrow autocorrelation function; and a processing device configured to: determine a location of the mobile computing device based on the received acoustic signal and supplemental information, wherein the supplemental information includes a strength of the transmitted acoustic signal, an orientation of the other mobile computing device, one or more spatial characteristics of the another mobile computing device, timing information associated with the transmitted acoustic signal, and a location history of the mobile computing device.
 20. The mobile computing device of claim 19, wherein the timing information provides timing data with respect to a common time frame. 